max=a>b?a:b;什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/08 09:49:08

max=(a>b?a:b); //括号内为条件判别式,如果a>b为真,条件表达式的值为a,如果a>b为假,条件表达式的值为b;然后将条件表达式的值赋给max

这是个条件运算符和关系运算符优先级别的问题
条件运算符的优先级低于关系运算符
所以a>b有没有括号都一样
执行结果就是将a,b两者中大的赋给max。

求a和b 两个数中比较大的那个

a>b?a:b 是一个表达式 意思是 如果a>b那么得a 否则得b

max= a>b?a:b
就是把后面表达式算出来的数 赋值给 max

所以max里面总是 a b 中比较大的

是下面这段的简写:

if(a>b)
max = a;
else
max = b;

就是说a>b为真的话就取a即max=a
否则的话也就是a<b就取max=b

c的三目运算符
条件 ? a : b
条件是真返回 a,条件是假返回 b

max = a > b ? a : b;
等价于
if (a > b)
max = a;
else
max = b;